From 5bee1a994f9ad8b49c584f117db8281136c0a01b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 17 Dec 2012 23:58:24 -0500 Subject: [PATCH] GtkMenuItemAccessible: implement selectable/selected states The automatic handling for this was removed in atk, so we need to do it ourselves now. --- gtk/a11y/gtkmenuitemaccessible.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gtk/a11y/gtkmenuitemaccessible.c b/gtk/a11y/gtkmenuitemaccessible.c index 2e5a4369e5..4389639572 100644 --- a/gtk/a11y/gtkmenuitemaccessible.c +++ b/gtk/a11y/gtkmenuitemaccessible.c @@ -23,6 +23,7 @@ struct _GtkMenuItemAccessiblePrivate { gchar *text; + gboolean selected; }; #define KEYBINDING_SEPARATOR ";" @@ -147,6 +148,10 @@ gtk_menu_item_accessible_ref_state_set (AtkObject *obj) state_set = ATK_OBJECT_CLASS (_gtk_menu_item_accessible_parent_class)->ref_state_set (obj); + atk_state_set_add_state (state_set, ATK_STATE_SELECTABLE); + if (GTK_MENU_ITEM_ACCESSIBLE (obj)->priv->selected) + atk_state_set_add_state (state_set, ATK_STATE_SELECTED); + menu_item = atk_object_get_parent (obj); if (menu_item) @@ -620,6 +625,7 @@ menu_item_selection (GtkMenuItem *item, gint i; obj = gtk_widget_get_accessible (GTK_WIDGET (item)); + GTK_MENU_ITEM_ACCESSIBLE (obj)->priv->selected = selected; atk_object_notify_state_change (obj, ATK_STATE_SELECTED, selected); for (i = 0; i < atk_object_get_n_accessible_children (obj); i++) -- 2.30.2